package controlador;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import modelo.JugadorDAO;
import modelo.Niveles;

import tiempo.Contador;
import vista.FrameJugarMasterMind;

public class ControladorJuego {
	
	private FrameJugarMasterMind frameJugarMasterMind;
	private Niveles niveles;
	private Color colorGuardado;
	private Contador tiempo;
	private int contadorIntentos;
	
	public ControladorJuego(){
		
		frameJugarMasterMind = new FrameJugarMasterMind();
		frameJugarMasterMind.setVisible(true);
		frameJugarMasterMind.getjBttJugar().setEnabled(false);
		colorGuardado = Color.white;
		niveles = new Niveles();
		tiempo = new Contador(frameJugarMasterMind.getJlblcontador());
		final ControladorJuego controlador = this;
		frameJugarMasterMind.getjRadBttN1().addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				frameJugarMasterMind.getjRadBttN2().setSelected(false);
				frameJugarMasterMind.getjRadBttN3().setSelected(false);
				frameJugarMasterMind.getjBttJugar().setEnabled(true);
			}
		});
		frameJugarMasterMind.getjRadBttN2().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				frameJugarMasterMind.getjRadBttN1().setSelected(false);
				frameJugarMasterMind.getjRadBttN3().setSelected(false);
				frameJugarMasterMind.getjBttJugar().setEnabled(true);
			}
		});
		frameJugarMasterMind.getjRadBttN3().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				frameJugarMasterMind.getjRadBttN1().setSelected(false);
				frameJugarMasterMind.getjRadBttN2().setSelected(false);
				frameJugarMasterMind.getjBttJugar().setEnabled(true);
			}
		});
		frameJugarMasterMind.getjBttNuevoJuego().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				frameJugarMasterMind.dispose();
				new ControladorJuego();
			}
		});
		frameJugarMasterMind.getjBttJugar().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if(frameJugarMasterMind.getjRadBttN1().isSelected())
					niveles.setDifNivel(1);
				if(frameJugarMasterMind.getjRadBttN2().isSelected())
					niveles.setDifNivel(2);
				if(frameJugarMasterMind.getjRadBttN3().isSelected())
					niveles.setDifNivel(3);
				tiempo.start();
				contadorIntentos = 0;
				ControladorColores controladorColores = new ControladorColores(controlador);
				ControladorSolucion controladorSolucion = new ControladorSolucion(controlador);
				ControladorIntentos controladorIntentos = new ControladorIntentos(controlador, controladorSolucion);
				frameJugarMasterMind.getjBttJugar().setEnabled(false);				
			}
		});
		frameJugarMasterMind.getjBttRecord().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				new ControladorRecord();
			}
		});
		
		
	}

	public Niveles getNiveles() {
		return niveles;
	}

	public void setNiveles(Niveles lvl) {
		this.niveles = lvl;
	}

	public FrameJugarMasterMind getMasterm() {
		return frameJugarMasterMind;
	}

	public void setMasterm(FrameJugarMasterMind masterm) {
		this.frameJugarMasterMind = masterm;
	}

	public Color getColorGuardado() {
		return colorGuardado;
	}

	public void setColorGuardado(Color color) {
		colorGuardado = color;
	}

	public Contador getTiempo() {
		return tiempo;
	}

	public void setTiempo(Contador tiempo) {
		this.tiempo = tiempo;
	}
	
	public int getIntentos() {
		return contadorIntentos;
	}

	public void setIntentos(int intentos) {
		this.contadorIntentos = intentos;
	}
	
}
